草庐IT

JavaScript setTimeout 无法访问函数变量

全部标签

javascript - 使用 Protractor 访问 JS 作用域元素/变量

我有一个Protractor测试,它输入登录数据并单击登录按钮,我想检查Angular变量的值。点击元素的ng-click是doLogin(),它在Controller文件中定义为:$scope.doLogin=function(){console.log('login--todo');//rememberemailusedlocalStorageService.add('lastKeyEmail',$scope.data.login.key.email);//todo-makedynamic$scope.authentication.user=true;//setemailoflog

javascript - 是否有一种纯 Javascript 方法可以将一个函数应用于多个元素的事件?

我想使用纯Javascript将单个函数绑定(bind)到多个事件。在jQuery中我会使用:$('.className').click(function(e){//dostuff});所以我尝试使用纯JS:document.getElementsByClassName('className').onclick=function(e){//dostuff};这不起作用,因为getElementsByClassName返回一个数组,而不是DOM对象。我可以遍历数组,但这似乎过于冗长而且似乎没有必要:vartopBars=document.getElementsByClassName('c

javascript - 外部 JavaScript 函数未定义,但存在

我有2个文件,一个HTML,一个JavaScript。JavaScript文件(contacts.js):functionadd_contact(){//RestofCodehere}HTML文件:我有一个按钮,当它被点击时,它会调用“add_contact”函数:Savechanges当JavaScript代码是HTML文件的头部时,该函数可以正常工作。但是,现在它是外部文件的一部分,它会返回以下错误:UncaughtReferenceError:add_contactisnotdefined我对这个有点迷茫,所以任何帮助都会很棒! 最佳答案

javascript - 是否可以在 Javascript 中将未声明的变量作为参数传递?

假设我有一个变量myvar,而我没有有一个变量myvar2。我可以毫无问题地运行以下命令:typeofmyvar//⇒'string'typeofmyvar2//⇒'undefined'typeof和delete是我所知道的唯一在给定这样的未定义参数时不会抛出错误的函数。我看了thelanguagespecfortypeof在我外行看来,它似乎使用了IsUnresolvableReference等内部函数。Edit:I'dbeenworkinginalanguagethatcheckstypewithasynonymousfunction,andhadn'tnoticedtypeofi

javascript - 绑定(bind)函数为空

functionf(){returnthis.x}f=f.bind(null)f()//undefinedx=1f()//1我找不到任何显示绑定(bind)到null或undefined无效的页面。到处都写着this成为bind的第一个参数的链接,没有提到异常(exception)情况。有人可以提供指向描述此类行为的地方的链接吗? 最佳答案 这种行为在严格模式和非严格模式之间是不同的。在非严格模式下,如果将thisArg设置为null或undefined,则this将是强制到全局对象(window)。在严格模式下,this可以是nu

javascript - 如何从 promise 方法内部访问 Angular js Controller 的 "this"?

我有一个简单的AngularjsController,如下所示发出XHR请求app.controller('MainController',['$http',function($http){this.php_response={};varpromise=$http.get('process.php');promise.then(function(success_data){//Idontthink"this"istalkingtothecontrollerthisanymore?this.php_response=success_data;},function(error){conso

javascript - 从 CDN 获取 jquery.min.js 或其他资源时,CDN 是否知道客户端正在访问哪个网站?

CDN能否通过跟踪我网站的访问者或他们下载所需的库而不共享他们访问的页面的URL来创建某种统计数据? 最佳答案 是的,他们知道请求资源的页面的URL(例如,通过查看Refererheader)。因此他们可以跟踪哪些网站请求了特定资源。唯一的异常(exception)是当HTTPS页面通过非安全连接请求资源时。在那种情况下,Referer不会被设置,但是Originheader无论如何都会有一些帮助。当然可以跟踪单个用户,但由于多种原因这是不切实际的:CDN资源本应由浏览器进行大量缓存,因此它们将针对许多不同的页面浏览请求和下载一次,

javascript - 使用 MDL 动态构建的输入无法正确呈现

我有以下代码,varloginForm=document.createElement('div');loginForm.className='row';loginForm.innerHTML='Username';document.getElementById('page-content').appendChild(loginForm);问题在于,由于javascript函数已经运行,输入的样式不正确。有人知道我需要调用什么javascript函数来完成这项工作吗?我尝试了MaterialTextfield.prototype.init()但没有任何改变。

javascript - 不能将 String.prototype.match 用作 Array.some 的函数吗?

这行不通:vars='^foo';console.log(['boot','foot'].some(s.match));UncaughtTypeError:String.prototype.matchcalledonnullorundefined但是这样做:vars='^foo';console.log(['boot','foot'].some(function(i){returni.match(s)}));这是为什么?我以某种方式想象String.prototype.match函数太“原始”之类的,但究竟是为什么呢?因为我没有使用ES2015,所以第二个版本看起来很冗长。有替代方案吗

javascript - 声明前访问 'let' 变量时不抛出 ReferenceError

我尝试在FirefoxV30.0Scratchpad中执行以下代码:functiondo_something(){console.log(foo);//ReferenceErrorletfoo=2;}do_something();预期的行为是我的程序应该抛出引用错误,因为我在声明之前访问了一个let变量。但是,我没有得到预期的行为,程序已执行,结果如下所示undefined你能解释一下,为什么它会这样吗? 最佳答案 根据MDNcompatibilitytable,Firefox仅从v35开始才支持临时死区语义。此外,您应该始终确保使